package com.example.system.information.utils;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class JsontoUtils {
    /**
     * 格式化并打印JSON数据（带缩进）
     *
     * @param jsonString 原始JSON字符串
     */
    public static void printPrettyJson(String jsonString) {
        String formattedJson = formatJson(jsonString);
        if (formattedJson != null) {
            System.out.println(formattedJson);
        }
    }

    /**
     * 格式化JSON字符串（带缩进）
     *
     * @param jsonString 原始JSON字符串
     * @return 格式化后的JSON字符串，或null（无效格式）
     */
    private static String formatJson(String jsonString) {
        if (jsonString == null || jsonString.trim().isEmpty()) {
            System.err.println("JSON string is null or empty");
            return null;
        }

        jsonString = jsonString.trim();

        try {
            // 处理空JSON对象
            if ("{}".equals(jsonString)) {
                return "{}";
            }

            // 处理空JSON数组
            if ("[]".equals(jsonString)) {
                return "[]";
            }

            // 尝试解析为JSONObject
            JSONObject jsonObject = new JSONObject(jsonString);
            return jsonObject.toString(4); // 4个空格缩进
        } catch (JSONException e1) {
            try {
                // 尝试解析为JSONArray
                JSONArray jsonArray = new JSONArray(jsonString);
                return jsonArray.toString(4); // 4个空格缩进
            } catch (JSONException e2) {
                // 不是有效的JSON格式
                System.err.println("Invalid JSON format: " + jsonString);
                return null;
            }
        }
    }
}